Repository navigation
ci(HUB-0000): drop unused workflows and harden CI - #100
Merged
chris-addison merged 4 commits intoNov 13, 2026
Merged
Conversation
Remove the release, prerelease and vouch workflows: the fork publishes no crates, makes no releases and has none of their secrets or app credentials. CI now installs just with taiki-e/install-action, since setup-just v4 calls extractions/setup-crate, which the action allowlist blocks. It runs on pushes to the Unity branches so PRs restore a base-branch Rust cache, saves caches from those pushes only, sets a timeout on every job, cancels superseded PR runs, runs every Rust job when CI itself changes, and adds a `CI Required` rollup for branch protection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
setup-rust-toolchain v2 sets CARGO_BUILD_WARNINGS=deny, which fails every build on cargo 1.100's manifest lints in upstream crates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ty/HUB-0000-gha-cleanup # Conflicts: # .github/renovate.json5 # .github/workflows/ci.yml # .github/workflows/prerelease.yml # .github/workflows/release-pr-check.yml # .github/workflows/release-pr.yml # .github/workflows/release-tag.yml # .github/workflows/release.yml # .github/workflows/vouch-check-issue.yml # .github/workflows/vouch-check-pr.yml # .github/workflows/vouch-manage-by-discussion.yml # .github/workflows/vouch-manage-by-issue.yml
chris-addison
marked this pull request as ready for review
November 13, 2026 16:14
chris-addison
added a commit
that referenced
this pull request
Nov 14, 2026
* ci(HUB-0000): drop unused workflows and harden CI Remove the release, prerelease and vouch workflows: the fork publishes no crates, makes no releases and has none of their secrets or app credentials. CI now installs just with taiki-e/install-action, since setup-just v4 calls extractions/setup-crate, which the action allowlist blocks. It runs on pushes to the Unity branches so PRs restore a base-branch Rust cache, saves caches from those pushes only, sets a timeout on every job, cancels superseded PR runs, runs every Rust job when CI itself changes, and adds a `CI Required` rollup for branch protection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci(HUB-0000): keep cargo build warnings as warnings setup-rust-toolchain v2 sets CARGO_BUILD_WARNINGS=deny, which fails every build on cargo 1.100's manifest lints in upstream crates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci(HUB-0000): keep rustc warnings fatal as setup-rust-toolchain v1 did Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Trims the fork's GitHub Actions to what it uses and fixes the setup step that currently fails every Rust job.
Review
ci.ymlfirst, then the deletions.Why now
#90 moved to
extractions/setup-just@v4, which callsextractions/setup-crate, and the repo's action allowlist doesn't include it, so every job that installsjustfailed at "Set up job". #68 pinned setup-just back to v2 and setup-rust-toolchain back to v1 as a stopgap. This PR keeps setup-rust-toolchain on v2 and removes setup-just entirely, so it also drops #68's two RenovateallowedVersionscaps (<4for setup-just,<2for setup-rust-toolchain). CI now installsjust(andcargo-machete) withtaiki-e/install-action, which is already on the allowlist.Removed
prerelease.ymlmain. The fork publishes nothing;mainonly mirrors upstream. NoCARGO_REGISTRY_TOKENsecret exists here.release.ymlv*tag. The fork makes no releases.release-tag.ymlmain, then callsrelease.yml.release-pr.ymlrelease-pr-check.ymlrelease/v*PRs intomain. None are opened here.vouch-check-issue.yml,vouch-check-pr.yml,vouch-manage-by-discussion.yml,vouch-manage-by-issue.ymlVOUCH_CLIENT_IDvariable andVOUCH_APP_PRIVATE_KEYsecret, which the fork doesn't have. Discussions are off, andvouch-check-prwould auto-close PRs from anyone not inVOUCHED.td.The vouch data files (
VOUCHED.td,issue-unvouched-message,DISCUSSION_TEMPLATE/) and the release recipes injustfileandMAINTENANCE.mdstay. They do nothing on their own, and leaving them avoids modify/delete conflicts on each upstream sync.The
Security Auditworkflow's weekly schedule is gone too. It has never run here, and on a schedulerustsec/audit-checkopens issues, which needsissues: write. RustSec still runs on any PR that touches the dependency graph, and Cycode's Vulnerable Dependencies check runs on every PR.Kept
fmt, clippy, typos, lockfile (advisory), machete, msrv, check-wasm, test-linux, test-mac, test-windows, check-examples, the two
Security Auditjobs, and Cycode (an app, not a workflow).Improvements
CI Required. A rollup job that fails when any CI job fails or is cancelled. A skipped Rust job passes only whenorchestratechose to skip the Rust jobs. Branch protection can require this one name, and jobs can be renamed or added without touching the ruleset.orchestratefilter skipped every Rust job when only.github/workflows/changed, so action bumps (chore(deps): update github-actions #68, chore(deps): update github-actions (major) #90) went untested. Now a PR skips the Rust jobs only when every changed file is docs or repo metadata (docs/, root*.md,CODEOWNERS, templates, Renovate config, vouch data,audit.yml). Anything else, includingci.yml, runs everything. The filter diffs the PR merge commit against its first parent (fetch-depth: 2) instead of fetching 350 commits.run_styleflag matched only.rs/.toml, so aCargo.lock-only PR (lock-file maintenance) skipped clippy, msrv, machete and check-wasm.main(the upstream mirror) and never onunity/hub-consolidated. It now runs on pushes tounity/hub-consolidatedandunity/hub-4.0, notmain.msrv,check-wasmandcheck-exampleswere PR-only; they now run on those pushes too.setup-rust-toolchain@v2already runsSwatinem/rust-cache, so the extrarust-cachesteps ran it twice. They're gone; jobs that compile nothing (fmt,lockfile,machete) no longer cache at all.timeout-minuteson every job (5 to 60, roughly 3 to 5x a cold run), so a hung runner stops early instead of running for 6 hours.Security Audit.contents: read;checks: writemoved from the whole audit workflow to thecargo-auditjob that needs it.RUSTFLAGS=-D warnings, so rustc warnings failed the build and test jobs on every platform. v2 (from chore(deps): update github-actions (major) #90) instead setsCARGO_BUILD_WARNINGS=deny. That also fails every build on cargo 1.100's manifest lints (unused dependencies, missing[lints]) in upstream crates, so the base has never been green on v2. This PR setsCARGO_BUILD_WARNINGS: warnworkflow-wide and passesrustflags: -D warningsto the jobs that compile (clippy, msrv, test-linux, test-mac, test-windows, check-examples), as v1 did. Rustc warnings stay fatal on all three platforms; cargo manifest lints only warn. Like v1,RUSTFLAGSreplaces therustflagsin.cargo/config.tomlfor those jobs.rust-srcand the wasm target throughsetup-rust-toolchain. It gets no-D warnings, as before, becauseRUSTFLAGSwould override the atomics flags thejustrecipe sets.Security Auditalso runs whenaudit.toml,deny.tomlor the workflow itself changes.toolchain: 1.95.0inmsrvstill equalsrust-version = "1.95"incrates/gpui/Cargo.tomlandmsrvin thejustfile.Branch protection
The
protect-unity-branchesruleset requires no status checks today, so nothing here breaks it. After merge, add a "Require status checks to pass" rule namingCI Required(from GitHub Actions) forunity/hub-consolidatedandunity/hub-4.0. Optionally add the Cycode checks too.How to test
ci.yml, so every Rust job runs on it; see the checks below.actionlintpasses on both workflows.ci.yml,Cargo.lock,crates/gpui/README.mdand an empty diff all run.Not tested: a docs-only PR (the skip path of
CI Required) and the cache save on a branch push. Both show up on the first such PR and the push after merge.🤖 Generated with Claude Code